The present invention relates to the field of UDDI registries and, more particularly, to efficiently handling information on changes to a UDDI registry including those resulting in virtual deletes.
Over recent years it has become commonplace for a business to provide a web site on the Internet which, for example, enables a web client to purchase goods from that business over the World Wide Web.
More recently, it has become necessary to handle more complex e-business applications on the Internet which, for example, enable business communication. This requirement has been satisfied by the arrival of web services. Web services are modular and enhanced e-business applications that enable programmatic interaction between applications across the Internet. That is, a web service is a modular software component designed to support interoperable machine-to-machine interaction over a network. The software component can be described via a Web service description language (WSDL) and can be capable of being accessed via standard network protocols, such as but not limited to Service Oriented Architecture Protocol (SOAP) over Hyper Text Transfer Protocol (HTTP).
The ability for a customer to locate an appropriate web service has been enabled by the arrival of registry services. Universal Description, Discovery and Integration (UDDI) provides a standardised way of specifying web services and is described in the Oasis UDDI specification.
A UDDI registry enables a business to publish information about the services it provides. Accordingly a user can send a request to the UDDI registry to obtain details of services which provide a particular service which the user requires. The user then chooses from one or more services for which details are returned by the UDDI registry and sends an appropriate request to the chosen service.
Once a user has located appropriate web services, that user may subscribe via a subscription API to be notified of changes to the services listed in the UDDI registry (e.g., the addition of new services, a service update or a service deletion). Such subscriptions may be scoped using selection criteria. For example, a subscriber may be interested in stock quote services only.
A number of actions can be performed with respect to an entity in a UDDI registry. These action, collectively referred to as a UDDI change action, include creating a new entity, updating an existing entity, and deleting an existing entity. When an entity is updated, one or more aspects or attributes of the entity change.
Since subscription filters may exist which are dependent upon these changed attributes, updating an entity can have a side effect of changing a set of subscribers to an updated entity. A virtual delete occurs when a subscription is “deleted” because a set of pre-existing filters (that don't change) which were valid for an entity before an update to that entity change so that the subscription is no longer valid. Thus, from a subscriber view point, the subscription involving the entity has been indirectly or virtually deleted.
Conventional mechanisms to handle virtual delete situations are triggered each time an update action is performed against a UDDI entry. The triggered action checks each subscription to the entity to determine if any of the subscriptions, which may include filters, is invalidated by the change. When the change negatively affected a subscription, the subscriber is typically notified of the fact. This conventional mechanism is very processor intensive, since each change to a UDDI registered entity necessitated a significant amount of processing. Notably, the processing required checking for invalidated subscriptions is an XML driven one, which required the XML to be parsed each time and required a database inquiry be made for each update.